package com.zm.demo.core.leetcode;

import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;

/**
 * @author zoum
 * @create 2020/1/17 10:17
 */
public class MergeKLists {

    public ListNode mergeKLists(ListNode[] lists) {

        List<ListNode> nodes = new ArrayList<>();
        for(int i = 0; i<lists.length; i++){
            ListNode node = lists[i];
            while(node != null){
                nodes.add(node);
                node = node.next;
            }
        }

        ListNode listNode = null;
        List<ListNode> sortedNodes = nodes.stream().sorted((o1,o2)-> o1.val > o2.val ? 1: (o1.val == o2.val ? 0 : -1)).collect(Collectors.toList());
        for (int i = 0; i < sortedNodes.size()-1; i++) {
            sortedNodes.get(i).next = sortedNodes.get(i+1);
        }
        sortedNodes.get(sortedNodes.size()-1).next = null;
        return sortedNodes.get(0);
    }
}
